package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.script.pojo.dto.UpdateDataDTO;
import com.xbongbong.pro.script.pojo.vo.ScriptVO;
import com.xbongbong.pro.smartsettings.pojo.dto.AiAssistantFixDataDTO;

/**
 * 应用模块名称<p>
 * 代码描述<p>
 * Company: 逍邦网络科技有限公司<p>
 *
 * @author chenshan
 * @version v1.0
 * @since 2020-03-05 16:10
 */
public interface RepairDataService {
    
    
    /**
     * 更新付款计划的数据，主要是插入坏账金额、开票金额
     * @param updateDataDTO
     * @return
     * @throws XbbException
     */
    ScriptVO scriptPayPlanData(UpdateDataDTO updateDataDTO) throws XbbException;

    /**
     * 修正父款计划的 已付、未付、坏账、付款状态
     * @param updateDataDTO
     * @return com.xbongbong.pro.script.pojo.vo.ScriptVO
     * @throws XbbException
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
    ScriptVO payPlanFinishAmount(UpdateDataDTO updateDataDTO) throws XbbException;
    
    /**
     * 更新采购合同的数据，主要是插入
     * 坏账金额=0、实付金额=根据付款单计算金额、未付金额=采购合同金额-实付金额、付款比例=实付金额/采购合同金额、开票金额=0、未开票金额=0
     * @param updateDataDTO
     * @return
     * @throws XbbException
     */
    ScriptVO scriptPurchaseData(UpdateDataDTO updateDataDTO) throws XbbException;

    /**
     * 修正采购合同的 已付、未付、坏账、付款比例
     * @param updateDataDTO
     * @return com.xbongbong.pro.script.pojo.vo.ScriptVO
     * @throws XbbException
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
    ScriptVO purchaseFinishAmount(UpdateDataDTO updateDataDTO) throws XbbException;

    /**
     * 修正精线索关联数据id
     * @param updateDataDTO
     * @return
     * @trows XbbException
     */
    ScriptVO fixFineCluePid(UpdateDataDTO updateDataDTO) throws XbbException;

    /***
     * 修复智能助手menuId脚本
     *
     * @param aiAssistantFixDataDTO
     * @throws
     * @return com.xbongbong.pro.script.pojo.vo.ScriptVO
     * @author hongxiao
     */
    ScriptVO fixMenuId(AiAssistantFixDataDTO aiAssistantFixDataDTO) throws XbbException;

    /**
     *
     * @param updateDataDTO
     * @return
     * @throws XbbException
     */
    ScriptVO fixCustomerDataForXbb(UpdateDataDTO updateDataDTO) throws XbbException;


}
